package br.com.autoLeal.ocorrencia.bean;

import java.io.File;
import java.util.List;

import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;

import org.primefaces.model.UploadedFile;

import br.com.autoLeal.bean.GenericBean;
import br.com.autoleal.ocorrencia.Ocorrencia;
import br.com.autoleal.ocorrencia.service.OcorrenciaServiceBean;
import br.com.autoleal.util.Util;
import br.com.autoleal.veiculo.entity.Veiculo;
import br.com.autoleal.veiculo.service.VeiculoServiceBean;

@ManagedBean
@ViewScoped
public class NovaOcorrenciaBean extends GenericBean {

	private static final long serialVersionUID = -7018819963670110135L;

	@EJB
	private VeiculoServiceBean veiculoServiceBean;
	@EJB
	private OcorrenciaServiceBean ocorrenciaServiceBean;

	private Veiculo veiculo;
	private Ocorrencia ocorrencia = new Ocorrencia();
	private Boolean exibirVeiculo = Boolean.FALSE;

	private List<UploadedFile> fotos;

	private String placa;

	public void pesquisar() {
		veiculo = veiculoServiceBean.buscarPlaca(placa);
		if (Util.isNull(veiculo)) {
			exibirMsgAviso("Veículo não encontrado");
			exibirVeiculo = Boolean.FALSE;
		} else {
			exibirVeiculo = Boolean.TRUE;
		}
	}

	public void salvarFotos() {
		for (UploadedFile foto : fotos) {
			File file = new File(FacesContext.getCurrentInstance().getExternalContext().getRequestContextPath() + "/" + ocorrencia.getCodigo() + "/fotos/foto" + fotos.indexOf(foto) + foto.getContentType());
		}
	}

	public void incluirOcorrencia() {
		try {
			ocorrencia.setVeiculo(veiculo);
			ocorrencia.setCodigo(Util.preencheCom(ocorrenciaServiceBean.buscarCodigoMax(), "0", 5, 1));
			ocorrenciaServiceBean.incluirOcorrencia(ocorrencia);
			ocorrencia = new Ocorrencia();
			exibirMsgSucesso("Ocorrência criada");
		} catch (Exception e) {
			exibirMsgErro(e.getMessage());
		}
	}

	public void cancelar() {
		exibirVeiculo = Boolean.FALSE;
	}

	public VeiculoServiceBean getVeiculoServiceBean() {
		return veiculoServiceBean;
	}

	public void setVeiculoServiceBean(VeiculoServiceBean veiculoServiceBean) {
		this.veiculoServiceBean = veiculoServiceBean;
	}

	public Veiculo getVeiculo() {
		return veiculo;
	}

	public void setVeiculo(Veiculo veiculo) {
		this.veiculo = veiculo;
	}

	public String getPlaca() {
		return placa;
	}

	public void setPlaca(String placa) {
		this.placa = placa;
	}

	public Boolean getExibirVeiculo() {
		return exibirVeiculo;
	}

	public void setExibirVeiculo(Boolean exibirVeiculo) {
		this.exibirVeiculo = exibirVeiculo;
	}

	public Ocorrencia getOcorrencia() {
		return ocorrencia;
	}

	public void setOcorrencia(Ocorrencia ocorrencia) {
		this.ocorrencia = ocorrencia;
	}

	public List<UploadedFile> getFotos() {
		return fotos;
	}

	public void setFotos(List<UploadedFile> fotos) {
		this.fotos = fotos;
	}

}
